package org.example.util;

import com.formdev.flatlaf.FlatLightLaf;

import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.util.Objects;

/**
 * 工具类 GUIUtil GUI的各种常用工具
 */
public class GUIUtil {
    //图片的文件夹
//    private static final String imgFolder = "src/main/resources/org/example/img/";
    private static final String imgFolder = "org/example/img/";


    /**
     * 定义皮肤（UI风格），使用 FlatLightLaf 风格
     */
    public static void useFlatLightLaf() {
        try {
            UIManager.setLookAndFeel(new FlatLightLaf());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    /**
     * 本月预算文本框，内容判空和判断是否是整数
     *
     * @param textField 文本框组件
     * @param name      文本框名字
     * @return 文本框输入是否正确
     */
    public static boolean isEmpty(JTextField textField, String name) {
        String text = textField.getText().trim();
        if (text.length() == 0) {
            JOptionPane.showMessageDialog(null, "输入有误，" + name + "不能为空");
            textField.grabFocus();
            return true;
        }
        return false;
    }


    /**
     * 把一个按钮设置成图文形式
     *
     * @param b        按钮
     * @param fileName 图片名
     * @param tip      按钮上的提示文字
     */
    public static void setImageIcon(JButton b, String fileName, String tip) {
//        ImageIcon i = new ImageIcon((new File(imgFolder, fileName)).getAbsolutePath());
        //org/example/img/logo/flower-96.png
        ImageIcon i = new ImageIcon(Objects.requireNonNull(GUIUtil.class.getResource("/org/example/img/" + fileName)));
        b.setIcon(i);
        b.setPreferredSize(new Dimension(61, 81));
        b.setToolTipText(tip);
        b.setVerticalTextPosition(JButton.BOTTOM);
        b.setHorizontalTextPosition(JButton.CENTER);
        b.setText(tip);
    }

    /**
     * 把若干个组件的前景色（文字）设置成指定颜色
     *
     * @param color 颜色
     * @param cs    组件
     */
    public static void setColor(Color color, JComponent... cs) {
        for (JComponent c : cs) {
            c.setForeground(color);
        }
    }
}
